
cmake_minimum_required(VERSION 3.0)
project(CALC)

#-----------------------------------------------------------------------------------------------------------------------
# ********************本节重点学习*******************
# 1.link_directories 添加静态库文件的路径
# 2.link_libraries 链接静态库名
# *************************************************
#-----------------------------------------------------------------------------------------------------------------------
# 搜索添加在当前路径下的所有源文件
# PROJECT_SOURCE_DIR 和 CMAKE_SOURCE_DIR是一样的。
file(GLOB SRC ${CMAKE_SOURCE_DIR}/*.cpp)

#-----------------------------------------------------------------------------------------------------------------------
# 长度计算 list(LENGTH <list> <定义变量接收>)
list(LENGTH SRC lsit_len1)
# message打印日志，STATUS固定用法
message(STATUS 列表1的长度为:${lsit_len1})
message(STATUS 添加的源文件有:${SRC})

#-----------------------------------------------------------------------------------------------------------------------
# 我们的头文件跟cpp文件不再一级，导致#include "head.h"找不到，因此我们需要包含头文件路径。
# include_directories添加头文件路径,虽然在生成静态库添加进去了（只对cpp源文件操作了），但是在生成可执行文件还是需要头文件。
include_directories(${CMAKE_SOURCE_DIR}/include)




#-----------------------------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------
# link_directories 添加静态库文件的路径
link_directories(${CMAKE_SOURCE_DIR}/../demo_v4/lib/lib1)
# link_libraries 链接静态库名，在demo_v4中生成的静态库名
link_libraries(calc)

#-----------------------------------------------------------------------------------------------------------------------
#指定可执行文件输出路径，如果不添加就会默认输出到当前路径
set(EXECUTABLE_OUTPUT_PATH /home/gabriel/mac_disk/cpp_project/cmake/demo_v5/build)
#生成可执行文件,此时上面的静态库文件就和SRC一起打包到app_demo5中去了。但是我们的动态库就不一样，详见demo_v6
add_executable(app_demo5 ${SRC})
#-----------------------------------------------------------------------------------------------------------------------

